﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication2
{
    public partial class modificaralum : Form
    {
        public modificaralum()
        {
            InitializeComponent();
        }
        GestiónAcademia ges = new GestiónAcademia();
        GestionFgut g = new GestionFgut();
        Conexion conn = new Conexion();

       
        public int Edad()
        {
        //Obtengo la diferencia en años.
        int edad = DateTime.Now.Year - fnacimiento.Value.Year;

        //Obtengo la fecha de cumpleaños de este año.
        DateTime nacimientoAhora = fnacimiento.Value.AddYears(edad);
        //Le resto un año si la fecha actual es anterior
        //al día de nacimiento.
        if (DateTime.Now.CompareTo(nacimientoAhora) < 0)
        {
        edad--;
        }   
            return edad;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(txtrutbuscar.Text))
            {
                string rutCompleto = txtrutbuscar.Text + txtdigito.Text;
                if (g.ExisteAlumno(rutCompleto) == true)
                {
                    //SqlConnection conn = new SqlConnection();
                    //conn = new SqlConnection(conexion);
                    btactualizar.Enabled = true;
                    conn.conectar();
                    string query = "SELECT * FROM ALUMNO WHERE RUT= @rut";
                    SqlCommand cmd = new SqlCommand(query, conn.conector);
                    cmd.Parameters.AddWithValue("@rut", rutCompleto);
                    SqlDataReader dr = cmd.ExecuteReader();
                    if (dr.Read())
                    {
                        txtnombre.Text = dr["nombre"].ToString();
                        fnacimiento.Text = dr["fecha_nac"].ToString();
                        txtrut.Text = dr["rut"].ToString();
                        //txtedad.Text = dr["edad"].ToString();
                        if (dr["sexo"].ToString().Equals("Masculino"))
                        { radioh.Checked = true; }
                        else { radiom.Checked = true; }
                        txttelefono.Text = dr["telefono"].ToString();
                        txtcelular.Text = dr["celular"].ToString();
                        txtemail.Text = dr["email"].ToString();
                        txtavisar.Text = dr["nombre_emerg"].ToString();
                        txtdireccion.Text = dr["direccion_emerg"].ToString();
                        txttelefemer.Text = dr["telefono_emerg"].ToString();
                        txtcelularemer.Text = dr["celu_emerg"].ToString();
                        txtemailemer.Text = dr["email_emerg"].ToString();
                        txtgruposangre.Text = dr["grupo_sangre"].ToString();
                        txtalergico.Text = dr["alergico"].ToString();
                        if (dr["prevision"].ToString().Equals("Fonasa"))
                        { radiofonasa.Checked = true; }
                        else { radioisapre.Checked = true; }
                        txtestatura.Text = dr["estatura"].ToString();
                        txtpeso.Text = dr["peso"].ToString();
                        txtcalzado.Text = dr["num_calzado"].ToString();
                        txttraje.Text = dr["talla_traje"].ToString();
                        txtbuzo.Text = dr["talla_buzo"].ToString();
                        gbmodificar.Enabled = true;
                    }
                }else
                    MessageBox.Show("No hay resultados para ese RUT !", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Debe Ingresar un RUT !","Información",MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
        }
        public void llenarComboConvenio(ComboBox combo)
        {
            DataSet ds = ges.buscarCBconvenio();
            if (ds.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < ds.Tables["convenios"].Rows.Count; i++)
                {
                    combo.Items.Add(ds.Tables["convenios"].Rows[i][0].ToString());
                }
            }
        }
        private void modificaralum_Load(object sender, EventArgs e)
        {
            llenarComboConvenio(cbconvenio);
        }

        private void btactualizar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(cbconvenio.Text) || string.IsNullOrWhiteSpace(txtnombre.Text) || string.IsNullOrWhiteSpace(fnacimiento.Text) || string.IsNullOrWhiteSpace(txtrut.Text) ||
               string.IsNullOrWhiteSpace(txtdigito.Text) || string.IsNullOrWhiteSpace(txtedad.Text) || string.IsNullOrWhiteSpace(txttelefono.Text) || string.IsNullOrWhiteSpace(txtcelular.Text) || string.IsNullOrWhiteSpace(txtemail.Text) ||
               string.IsNullOrWhiteSpace(txtavisar.Text) || string.IsNullOrWhiteSpace(txtdireccion.Text) || string.IsNullOrWhiteSpace(txttelefemer.Text) || string.IsNullOrWhiteSpace(txtcelularemer.Text) || string.IsNullOrWhiteSpace(txtemailemer.Text) ||
                string.IsNullOrWhiteSpace(txtgruposangre.Text) || string.IsNullOrWhiteSpace(txtalergico.Text) || string.IsNullOrWhiteSpace(txtestatura.Text) || string.IsNullOrWhiteSpace(txtpeso.Text) || string.IsNullOrWhiteSpace(txtcalzado.Text) || string.IsNullOrWhiteSpace(txttraje.Text) ||
                string.IsNullOrWhiteSpace(txtbuzo.Text) || ((radioh.Checked == false) && (radiom.Checked == false)) || ((radiofonasa.Checked == false) && (radioisapre.Checked == false)))
            {
                MessageBox.Show("Faltan datos!", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                string salud = "", sexo = "";
                if (radiofonasa.Checked == true)
                {
                    salud = "Fonasa";
                }
                else if (radioisapre.Checked == true)
                {
                    salud = "Isapre";
                }

                if (radioh.Checked == true)
                {
                    sexo = "Masculino";
                }
                else if (radiom.Checked == true)
                {
                    sexo = "Femenino";
                }
                int convenio = 1;
                int cel_emer = Convert.ToInt32(txtcelularemer.Text);
                int tel_emerg = Convert.ToInt32(txttelefemer.Text);
                int telefono = Convert.ToInt32(txttelefono.Text);
                int celular = Convert.ToInt32(txtcelular.Text);
                int peso = Convert.ToInt32(txtpeso.Text);
                int estatura = Convert.ToInt32(txtestatura.Text);
                int calzado = Convert.ToInt32(txtcalzado.Text);
                //string rutcompleto = txtrut.Text + txtdigito.Text;
                MessageBox.Show( g.ActualizarAlumno(fnacimiento.Text,txtnombre.Text,sexo,telefono,celular,txtemail.Text,txtavisar.Text,txtdireccion.Text,tel_emerg,cel_emer,txtemailemer.Text,txtgruposangre.Text,txtalergico.Text,salud,peso,estatura,calzado,txttraje.Text,txtbuzo.Text,convenio,txtrut.Text),"Información",MessageBoxButtons.OK,MessageBoxIcon.Information);
                g.Limpiar(medidas);
                g.Limpiar(emergencia);
                g.Limpiar(datospersonales);
                gbmodificar.Enabled = false;
                btactualizar.Enabled = false;
            }
        }

        private void txtrutbuscar_TextChanged(object sender, EventArgs e)
        {
            if (txtrutbuscar.Text == "")
            {
                txtdigito.Text = "";
            }
            if (txtrutbuscar.TextLength == 7 || txtrutbuscar.TextLength == 8)
            {
                int rut = Convert.ToInt32(txtrutbuscar.Text);
                string digito = g.digitoVerificador(rut);
                txtdigito.Text = digito;
            }
        }

        private void fnacimiento_ValueChanged(object sender, EventArgs e)
        {
         txtedad.Text= Edad().ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form.ActiveForm.Visible = false;
            estudiante es = new estudiante();
            es.ShowDialog();

        }

        private void button4_Click(object sender, EventArgs e)
        {
            Form.ActiveForm.Visible = false;
            mostraralum m = new mostraralum();
            m.ShowDialog();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form.ActiveForm.Visible = false;
            bloqalum b = new bloqalum();
            b.ShowDialog();
        }

        private void txtemail_Validating(object sender, CancelEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtemail.Text))
            {
                MessageBox.Show("Debe ingresar un Email", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                txtemail.Focus();
            }
            else
            {
                if (g.validarEmail(txtemail.Text) == false)
                {
                    MessageBox.Show("El Email Ingresado no se encuentra en el Formato Correcto.\nEjemplo: micorreo@ejemplo.com", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txtemail.Focus();
                }
            }
        }

        private void txtemail_MouseClick(object sender, MouseEventArgs e)
        {
            if (txtemail.Text == "micorreo@ejemplo.com")
                txtemail.Text = "";
        }

        private void txtemailemer_MouseClick(object sender, MouseEventArgs e)
        {
            
            if (txtemail.Text == "micorreo@ejemplo.com")
                txtemail.Text = "";
        }

        private void txtemailemer_Validating(object sender, CancelEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtemailemer.Text))
            {
                MessageBox.Show("Debe ingresar un Email", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                txtemailemer.Focus();
            }
            else
            {
                if (g.validarEmail(txtemailemer.Text) == false)
                {
                    MessageBox.Show("El Email Ingresado no se encuentra en el Formato Correcto.\nEjemplo: micorreo@ejemplo.com", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txtemailemer.Focus();
                }
            }
        }

        private void txttelefono_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void txtcelular_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void txttelefemer_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void txtcelularemer_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void txtcalzado_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void txtestatura_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void txtpeso_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void txtbuzo_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }
    }
}
